package com.sumainfor.pc.market.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author PuaChen
 * @Create 2019-03-07 10:44
 */
public interface RunProviderMapper {

    /**
     * 通过房源详表编号查询运营部所需要的房源信息
     *
     * @param infoId
     * @return
     */
    Map<String, Object> selectHousingByInfoId(String infoId);

    /**
     * 获得小区列表数据
     *
     * @param page
     * @param centerId
     * @return
     */
    Page<Map<String, Object>> selectProjectListByCenterId(Page page, @Param("centerId") String centerId);


    /**
     * 获得房源数据通过小区编号
     *
     * @param page
     * @param params
     * @return
     */
    Page<Map<String, Object>> selectHousingByProjectId(Page page, @Param("map") Map<String, Object> params);

    /**
     * 获得房源信息 业主提前收房用
     *
     * @param houId
     * @return
     */
    Map<String, Object> getOmHousingInfoById(String houId);


    /**
     * 修改业主联系方式
     *
     * @param params
     * @return
     */
    int updateOwCallInfo(Map<String, Object> params);


    /**
     * 修改业主人员信息
     *
     * @param params
     * @return
     */
    int updateOwPeopleInfo(Map<String, Object> params);


    /**
     * 新增一条业主成员信息
     *
     * @param params
     * @return
     */
    int insertOwnerPeople(Map<String, Object> params);

    /**
     * 修改业主银行收款信息
     *
     * @param params
     * @return
     */
    int updateOwPactInfo(Map<String, Object> params);


    /**
     * 获得业主信息资料
     *
     * @param params
     * @return
     */
    Map<String, Object> getOwnerInfoByParams(Map<String, Object> params);


    /**
     * 通过业主手机号查询业主信息
     *
     * @param phone
     * @return
     */
    List<Map<String, Object>> getOwnerInfoListByPhone(String phone);


    /**
     * 通过业主编号查询这个业主的房源所在地理位置
     *
     * @param ownerId
     * @return
     */
    Map<String, Object> getAddressInfo(String ownerId);


    /**
     * 获取业主履行中的合同信息
     *
     * @param ownerId
     * @return
     */
    List<Map<String, Object>> selectOwnerPactList(@Param("ownerId") List<String> ownerId);

    /**
     * 删除一条业主成员记录
     *
     * @param id
     * @return
     */
    int deletePeopleById(String id);

    /**
     * 查询业主人员信息数据
     *
     * @param houId
     * @return
     */
    List<Map<String, Object>> getOwnerPeopleData(String houId);


    /**
     * 根据编号查询收款信息
     *
     * @param owId
     * @return
     */
    Map<String, Object> selectOwnerBlankInfo(String owId);


    /**
     * 查询业主当前合同的编号
     *
     * @param ownerId
     * @return
     */
    String getCurrentOwnerPactByOwnerId(String ownerId);


    /**
     * 查询退租所需的信息
     *
     * @param page
     * @param params MiId: 服务中心编号
     *               City:城市名称
     *               District:区名称
     *               ComName:小区名称
     *               infoIds:房源详表ID集合 *
     * @return
     */
    IPage<Map<String, Object>> selectSurrender(Page page, @Param("map") Map<String, Object> params);


    /**
     * 查询合同的到期时间
     *
     * @param pactId
     * @return
     */
    String getPactPastTime(String pactId);


    /**
     * 查询活动的名称
     *
     * @param actId
     * @return
     */
    String getActivateNameById(String actId);


    ///////////////////////////////////////////////////////////////////////////
    // 地区收费标准
    ///////////////////////////////////////////////////////////////////////////

    /**
     * 根据服务中心的编号查询小区数据列表
     *
     * @param centerId
     * @param page
     * @return
     */
    IPage<Map<String, Object>> selectProjectByCenterId(Page page, @Param("centerId") String centerId);


    /**
     * 根据项目的编号查询房源的数据列表
     *
     * @param page
     * @param params
     * @return
     */
    IPage<Map<String, Object>> selectHousingListView(@Param("page") Page page, @Param("map") Map<String, Object> params);
}
